<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>Mesa Release Notes</title>
  <link rel="stylesheet" type="text/css" href="../mesa.css">
</head>
<body>

<div class="header">
  <h1>The Mesa 3D Graphics Library</h1>
</div>

<iframe src="../contents.html"></iframe>
<div class="content">

<h1>Mesa 19.2.0 Release Notes / 2019.09.25</h1>

<p>
Mesa 19.2.0 is a new development release. People who are concerned
with stability and reliability should stick with a previous release or
wait for Mesa 19.2.1.
</p>
<p>
Mesa 19.2.0 implements the OpenGL 4.5 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.5.  OpenGL
4.5 is <strong>only</strong> available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
</p>
<p>
Mesa 19.2.0 implements the Vulkan 1.1 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
</p>

<h2>SHA256 checksums</h2>
<pre>
    b060caa2a00f856431160ff7377d0e8f58f2aa48c16ee5a9e265ebdccb10852a  mesa-19.2.0.tar.xz
</pre>


<h2>New features</h2>

<ul>
<li>GL_ARB_post_depth_coverage on radeonsi (Navi)</li>
<li>GL_ARB_seamless_cubemap_per_texture on etnaviv (if GPU supports SEAMLESS_CUBE_MAP)</li>
<li>GL_EXT_shader_image_load_store on radeonsi (with LLVM >= 10)</li>
<li>GL_EXT_shader_samples_identical on iris and radeonsi (if using NIR)</li>
<li>GL_EXT_texture_shadow_lod on i965, iris</li>
<li>EGL_EXT_platform_device</li>
<li>VK_AMD_buffer_marker on radv</li>
<li>VK_EXT_index_type_uint8 on radv</li>
<li>VK_EXT_post_depth_coverage on radv</li>
<li>VK_EXT_queue_family_foreign on radv</li>
<li>VK_EXT_sample_locations on radv</li>
<li>VK_EXT_shader_demote_to_helper_invocation on Intel.</li>
<li>VK_KHR_depth_stencil_resolve on radv</li>
<li>VK_KHR_imageless_framebuffer on radv</li>
<li>VK_KHR_shader_atomic_int64 on radv</li>
<li>VK_KHR_uniform_buffer_standard_layout on radv</li>
</ul>

<h2>Bug fixes</h2>

<ul>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103674">Bug 103674</a> - u_queue.c:173:7: error: implicit declaration of function 'timespec_get' is invalid in C99</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104395">Bug 104395</a> - [CTS] GTF-GL46.gtf32.GL3Tests.packed_pixels.packed_pixels tests fail on 32bit Mesa</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110765">Bug 110765</a> - ANV regression: Assertion `pass-&gt;attachment_count == framebuffer-&gt;attachment_count' failed</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110814">Bug 110814</a> - KWin compositor crashes on launch</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111069">Bug 111069</a> - Assertion fails in nir_opt_remove_phis.c during compilation of SPIR-V shader</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111213">Bug 111213</a> - VA-API nouveau SIGSEGV and asserts</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111241">Bug 111241</a> - Shadertoy shader causing hang</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111248">Bug 111248</a> - Navi10 Font rendering issue in Overwatch</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111271">Bug 111271</a> - Crash in eglMakeCurrent</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111308">Bug 111308</a> - [Regression, NIR, bisected] Black squares in Unigine Heaven via DXVK</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111401">Bug 111401</a> - Vulkan overlay layer - async compute not supported, making overlay disappear in Doom</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111405">Bug 111405</a> - Some infinite 'do{}while' loops lead mesa to an infinite compilation</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111411">Bug 111411</a> - SPIR-V shader leads to GPU hang, sometimes making machine unstable</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111414">Bug 111414</a> - [REGRESSION] [BISECTED] Segmentation fault in si_bind_blend_state after removal of the blend state NULL check</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111467">Bug 111467</a> - WOLF RPG Editor + Gallium Nine Standalone: Rendering issue when using Iris driver</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111490">Bug 111490</a> - [REGRESSION] [BISECTED] Shadow Tactics: Blades of the Shogun - problems rendering water</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111493">Bug 111493</a> - In the game The Surge (378540) - textures disappear then appear again when I change the camera angle view</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111509">Bug 111509</a> - [regression][bisected] piglit.spec.ext_image_dma_buf_import.ext_image_dma_buf_import-export fails on iris</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111522">Bug 111522</a> - [bisected] Supraland no longer start</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111529">Bug 111529</a> - EGL_PLATFORM=drm doesn't expose MESA_query_driver extension</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111552">Bug 111552</a> - Geekbench 5.0 Vulkan compute benchmark fails on Anvil</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111566">Bug 111566</a> - [REGRESSION] [BISECTED] Large CS workgroup sizes broken in combination with FP64 on Intel.</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111576">Bug 111576</a> - [bisected] Performance regression in X4:Foundations in 19.2</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111676">Bug 111676</a> - Tropico 6 apitrace throws error into logs</li>

<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111734">Bug 111734</a> - Geometry shader with double interpolators fails in LLVM</li>

</ul>

<h2>Changes</h2>

<p>Adam Jackson (1):</p>
<ul>
  <li>docs: Update bug report URLs for the gitlab migration</li>
</ul>

<p>Alex Smith (1):</p>
<ul>
  <li>radv: Change memory type order for GPUs without dedicated VRAM</li>
</ul>

<p>Alyssa Rosenzweig (1):</p>
<ul>
  <li>pan/midgard: Fix writeout combining</li>
</ul>

<p>Andres Gomez (1):</p>
<ul>
  <li>docs: Add the maximum implemented Vulkan API version in 19.2 rel notes</li>
</ul>

<p>Andres Rodriguez (1):</p>
<ul>
  <li>radv: additional query fixes</li>
</ul>

<p>Arcady Goldmints-Orlov (1):</p>
<ul>
  <li>anv: fix descriptor limits on gen8</li>
</ul>

<p>Bas Nieuwenhuizen (6):</p>
<ul>
  <li>radv: Use correct vgpr_comp_cnt for VS if both prim_id and instance_id are needed.</li>
  <li>radv: Emit VGT_GS_ONCHIP_CNTL for tess on GFX10.</li>
  <li>radv: Disable NGG for geometry shaders.</li>
  <li>Revert "ac/nir: Lower large indirect variables to scratch"</li>
  <li>tu: Set up glsl types.</li>
  <li>radv: Add workaround for hang in The Surge 2.</li>
</ul>

<p>Caio Marcelo de Oliveira Filho (2):</p>
<ul>
  <li>nir/lower_explicit_io: Handle 1 bit loads and stores</li>
  <li>glsl/nir: Avoid overflow when setting max_uniform_location</li>
</ul>

<p>Connor Abbott (1):</p>
<ul>
  <li>radv: Call nir_propagate_invariant()</li>
</ul>

<p>Danylo Piliaiev (3):</p>
<ul>
  <li>nir/loop_unroll: Prepare loop for unrolling in wrapper_unroll</li>
  <li>nir/loop_analyze: Treat do{}while(false) loops as 0 iterations</li>
  <li>tgsi_to_nir: Translate TGSI_INTERPOLATE_COLOR as INTERP_MODE_NONE</li>
</ul>

<p>Dave Airlie (2):</p>
<ul>
  <li>virgl: fix format conversion for recent gallium changes.</li>
  <li>gallivm: fix atomic compare-and-swap</li>
</ul>

<p>Dave Stevenson (1):</p>
<ul>
  <li>broadcom/v3d: Allow importing linear BOs with arbitrary offset/stride.</li>
</ul>

<p>Dylan Baker (9):</p>
<ul>
  <li>bump version to 19.2-rc2</li>
  <li>nir: Add is_not_negative helper function</li>
  <li>Bump version for rc3</li>
  <li>meson: don't generate file into subdirs</li>
  <li>add patches to be ignored</li>
  <li>Bump version for 19.2.0-rc4</li>
  <li>cherry-ignore: Add patches</li>
  <li>rehardcode from origin/master to upstream/master</li>
  <li>bin/get-pick-list: use --oneline=pretty instead of --oneline</li>
</ul>

<p>Emil Velikov (1):</p>
<ul>
  <li>Update version to 19.2.0-rc1</li>
</ul>

<p>Eric Engestrom (14):</p>
<ul>
  <li>ttn: fix 64-bit shift on 32-bit `1`</li>
  <li>egl: fix deadlock in malloc error path</li>
  <li>util/os_file: fix double-close()</li>
  <li>anv: fix format string in error message</li>
  <li>freedreno/drm-shim: fix mem leak</li>
  <li>nir: fix memleak in error path</li>
  <li>anv: add support for driconf</li>
  <li>wsi: add minImageCount override</li>
  <li>anv: add support for vk_x11_override_min_image_count</li>
  <li>amd: move adaptive sync to performance section, as it is defined in xmlpool</li>
  <li>radv: add support for vk_x11_override_min_image_count</li>
  <li>drirc: override minImageCount=2 for gfxbench</li>
  <li>gl: drop incorrect pkg-config file for glvnd</li>
  <li>meson: re-add incorrect pkg-config files with GLVND for backward compatibility</li>
</ul>

<p>Erik Faye-Lund (2):</p>
<ul>
  <li>gallium/auxiliary/indices: consistently apply start only to input</li>
  <li>util: fix SSE-version needed for double opcodes</li>
</ul>

<p>Haihao Xiang (1):</p>
<ul>
  <li>i965: support AYUV/XYUV for external import only</li>
</ul>

<p>Hal Gentz (2):</p>
<ul>
  <li>glx: Fix SEGV due to dereferencing a NULL ptr from XCB-GLX.</li>
  <li>gallium/osmesa: Fix the inability to set no context as current.</li>
</ul>

<p>Iago Toral Quiroga (1):</p>
<ul>
  <li>v3d: make sure we have enough space in the CL for the primitive counts packet</li>
</ul>

<p>Ian Romanick (8):</p>
<ul>
  <li>nir/algrbraic: Don't optimize open-coded bitfield reverse when lowering is enabled</li>
  <li>intel/compiler: Request bitfield_reverse lowering on pre-Gen7 hardware</li>
  <li>nir/algebraic: Mark some value range analysis-based optimizations imprecise</li>
  <li>nir/range-analysis: Adjust result range of exp2 to account for flush-to-zero</li>
  <li>nir/range-analysis: Adjust result range of multiplication to account for flush-to-zero</li>
  <li>nir/range-analysis: Fix incorrect fadd range result for (ne_zero, ne_zero)</li>
  <li>nir/range-analysis: Handle constants in nir_op_mov just like nir_op_bcsel</li>
  <li>nir/algebraic: Do not apply late DPH optimization in vertex processing stages</li>
</ul>

<p>Ilia Mirkin (1):</p>
<ul>
  <li>gallium/vl: use compute preference for all multimedia, not just blit</li>
</ul>

<p>Jason Ekstrand (9):</p>
<ul>
  <li>anv: Bump maxComputeWorkgroupSize</li>
  <li>nir: Handle complex derefs in nir_split_array_vars</li>
  <li>nir: Don't infinitely recurse in lower_ssa_defs_to_regs_block</li>
  <li>nir: Add a block_is_unreachable helper</li>
  <li>nir/repair_ssa: Repair dominance for unreachable blocks</li>
  <li>nir/repair_ssa: Insert deref casts when needed</li>
  <li>nir/dead_cf: Repair SSA if the pass makes progress</li>
  <li>intel/fs: Handle UNDEF in split_virtual_grfs</li>
  <li>nir/repair_ssa: Replace the unreachable check with the phi builder</li>
</ul>

<p>Jonathan Marek (1):</p>
<ul>
  <li>freedreno/a2xx: ir2: fix lowering of instructions after float lowering</li>
</ul>

<p>Jose Maria Casanova Crespo (1):</p>
<ul>
  <li>mesa: recover target_check before get_current_tex_objects</li>
</ul>

<p>Juan A. Suarez Romero (1):</p>
<ul>
  <li>bin/get-pick-list.sh: sha1 commits can be smaller than 8 chars</li>
</ul>

<p>Kenneth Graunke (20):</p>
<ul>
  <li>gallium/ddebug: Wrap resource_get_param if available</li>
  <li>gallium/trace: Wrap resource_get_param if available</li>
  <li>gallium/rbug: Wrap resource_get_param if available</li>
  <li>gallium/noop: Implement resource_get_param</li>
  <li>iris: Replace devinfo-&gt;gen with GEN_GEN</li>
  <li>iris: Fix broken aux.possible/sampler_usages bitmask handling</li>
  <li>iris: Update fast clear colors on Gen9 with direct immediate writes.</li>
  <li>iris: Drop copy format hacks from copy region based transfer path.</li>
  <li>iris: Avoid unnecessary resolves on transfer maps</li>
  <li>iris: Fix large timeout handling in rel2abs()</li>
  <li>isl: Drop UnormPathInColorPipe for buffer surfaces.</li>
  <li>isl: Don't set UnormPathInColorPipe for integer surfaces.</li>
  <li>util: Add a _mesa_i64roundevenf() helper.</li>
  <li>mesa: Fix _mesa_float_to_unorm() on 32-bit systems.</li>
  <li>iris: Fix partial fast clear checks to account for miplevel.</li>
  <li>iris: Report correct number of planes for planar images</li>
  <li>iris: Fix constant buffer sizes for non-UBOs</li>
  <li>gallium: Fix util_format_get_depth_only</li>
  <li>iris: Initialize ice-&gt;state.prim_mode to an invalid value</li>
  <li>intel: Increase Gen11 compute shader scratch IDs to 64.</li>
</ul>

<p>Lepton Wu (1):</p>
<ul>
  <li>virgl: Fix pipe_resource leaks under multi-sample.</li>
</ul>

<p>Lionel Landwerlin (9):</p>
<ul>
  <li>util/timespec: use unsigned 64 bit integers for nsec values</li>
  <li>util: fix compilation on macos</li>
  <li>egl: fix platform selection</li>
  <li>vulkan/overlay: bounce image back to present layout</li>
  <li>radv: store engine name</li>
  <li>driconfig: add a new engine name/version parameter</li>
  <li>vulkan: add vk_x11_strict_image_count option</li>
  <li>util/xmlconfig: fix regexp compile failure check</li>
  <li>drirc: include unreal engine version 0 to 23</li>
</ul>

<p>Marek Olšák (23):</p>
<ul>
  <li>radeonsi/gfx10: fix the legacy pipeline by storing as_ngg in the shader cache</li>
  <li>radeonsi: move some global shader cache flags to per-binary flags</li>
  <li>radeonsi/gfx10: fix tessellation for the legacy pipeline</li>
  <li>radeonsi/gfx10: fix the PRIMITIVES_GENERATED query if using legacy streamout</li>
  <li>radeonsi/gfx10: create the GS copy shader if using legacy streamout</li>
  <li>radeonsi/gfx10: add as_ngg variant for VS as ES to select Wave32/64</li>
  <li>radeonsi/gfx10: fix InstanceID for legacy VS+GS</li>
  <li>radeonsi/gfx10: don't initialize VGT_INSTANCE_STEP_RATE_0</li>
  <li>radeonsi/gfx10: always use the legacy pipeline for streamout</li>
  <li>radeonsi/gfx10: finish up Navi14, add PCI ID</li>
  <li>radeonsi/gfx10: add AMD_DEBUG=nongg</li>
  <li>winsys/amdgpu+radeon: process AMD_DEBUG in addition to R600_DEBUG</li>
  <li>radeonsi: add PKT3_CONTEXT_REG_RMW</li>
  <li>radeonsi/gfx10: remove incorrect ngg/pos_writes_edgeflag variables</li>
  <li>radeonsi/gfx10: set PA_CL_VS_OUT_CNTL with CONTEXT_REG_RMW to fix edge flags</li>
  <li>radeonsi: consolidate determining VGPR_COMP_CNT for API VS</li>
  <li>radeonsi: unbind blend/DSA/rasterizer state correctly in delete functions</li>
  <li>radeonsi: fix scratch buffer WAVESIZE setting leading to corruption</li>
  <li>radeonsi/gfx10: don't call gfx10_destroy_query with compute-only contexts</li>
  <li>radeonsi/gfx10: fix wave occupancy computations</li>
  <li>radeonsi: add Navi12 PCI ID</li>
  <li>amd: add more PCI IDs for Navi14</li>
  <li>ac/addrlib: fix chip identification for Vega10, Arcturus, Raven2, Renoir</li>
</ul>

<p>Mauro Rossi (2):</p>
<ul>
  <li>android: mesa: revert "Enable asm unconditionally"</li>
  <li>android: anv: libmesa_vulkan_common: add libmesa_util static dependency</li>
</ul>

<p>Paulo Zanoni (2):</p>
<ul>
  <li>intel/fs: grab fail_msg from v32 instead of v16 when v32-&gt;run_cs fails</li>
  <li>intel/fs: fix SHADER_OPCODE_CLUSTER_BROADCAST for SIMD32</li>
</ul>

<p>Pierre-Eric Pelloux-Prayer (1):</p>
<ul>
  <li>glsl: replace 'x + (-x)' with constant 0</li>
</ul>

<p>Rafael Antognolli (1):</p>
<ul>
  <li>anv: Only re-emit non-dynamic state that has changed.</li>
</ul>

<p>Rhys Perry (1):</p>
<ul>
  <li>radv: always emit a position export in gs copy shaders</li>
</ul>

<p>Samuel Iglesias Gonsálvez (1):</p>
<ul>
  <li>intel/nir: do not apply the fsin and fcos trig workarounds for consts</li>
</ul>

<p>Samuel Pitoiset (11):</p>
<ul>
  <li>radv: allow to enable VK_AMD_shader_ballot only on GFX8+</li>
  <li>radv: add a new debug option called RADV_DEBUG=noshaderballot</li>
  <li>radv: force enable VK_AMD_shader_ballot for Wolfenstein Youngblood</li>
  <li>ac: fix exclusive scans on GFX8-GFX9</li>
  <li>radv/gfx10: don't initialize VGT_INSTANCE_STEP_RATE_0</li>
  <li>radv/gfx10: do not use NGG with NAVI14</li>
  <li>radv: fix getting the index type size for uint8_t</li>
  <li>nir: do not assume that the result of fexp2(a) is always an integral</li>
  <li>radv: fix allocating number of user sgprs if streamout is used</li>
  <li>radv: fix loading 64-bit GS inputs</li>
  <li>radv/gfx10: fix VK_KHR_pipeline_executable_properties with NGG GS</li>
</ul>

<p>Sergii Romantsov (2):</p>
<ul>
  <li>intel/dri: finish proper glthread</li>
  <li>nir/large_constants: more careful data copying</li>
</ul>

<p>Tapani Pälli (5):</p>
<ul>
  <li>util: fix os_create_anonymous_file on android</li>
  <li>iris/android: fix build and link with libmesa_intel_perf</li>
  <li>egl: reset blob cache set/get functions on terminate</li>
  <li>iris: close screen fd on iris_destroy_screen</li>
  <li>egl: check for NULL value like eglGetSyncAttribKHR does</li>
</ul>

<p>Thong Thai (1):</p>
<ul>
  <li>Revert "radeonsi: don't emit PKT3_CONTEXT_CONTROL on amdgpu"</li>
</ul>

<p>Timur Kristóf (1):</p>
<ul>
  <li>st/nine: Properly initialize GLSL types for NIR shaders.</li>
</ul>

<p>Vinson Lee (2):</p>
<ul>
  <li>swr: Fix build with llvm-9.0 again.</li>
  <li>travis: Fail build if any command in if statement fails.</li>
</ul>

</div>
</body>
</html>
